/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package Lager;
import java.awt.event.ActionEvent;
import java.util.Date;
import java.text.DateFormat;
import java.util.Calendar;
import java.util.GregorianCalendar;
import javax.swing.JOptionPane;
import javax.swing.JDialog;
import java.beans.*;
import java.awt.event.ActionListener;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
/**
 *
 * @author Krzysiek
 */
public class Termin implements PropertyChangeListener {
    int menge;
    Date termin;
    Date alternate;
    String konfiguration;
    String terminVorschlag;
    JOptionPane jOptionPane1 = null;
    JDialog jDialog = null;
    Projektplaner pp;

    Termin(Projektplaner pp){
    this.pp = pp;
    this.menge = pp.getJTextField1Menge();
    this.konfiguration = pp.getJComboBox1Konfiguration();
    this.termin = pp.getDatum();

    Calendar calendar = new GregorianCalendar();
    calendar.setTime(termin);

    //hier prüft er ob Termin eingehalten werde kann
    // greift auf die datenbank
    // wenn Termin nicht eingehalten werden kann
    // dann alternativVorschlag

    //addiert Tage
    calendar.add(Calendar.DAY_OF_WEEK, 5);
    alternate = calendar.getTime();


     DateFormat df;
     df = DateFormat.getDateInstance(DateFormat.MEDIUM);
     terminVorschlag = df.format(alternate).toString();
     alternativVorschlag(df);
}

private void alternativVorschlag(DateFormat df){

   jOptionPane1 = new JOptionPane("Frühestmöglicher Termin:\n" + df.format(alternate) + "\nAuftrag trotzdem erstellen?",
   JOptionPane.WARNING_MESSAGE,JOptionPane.YES_NO_OPTION);

   jOptionPane1.addPropertyChangeListener(this);


   jDialog = new JDialog(pp,"Termin",true);
   jDialog.setContentPane(jOptionPane1);
   jDialog.setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE);

   jDialog.pack();
   jDialog.setVisible(true);

   terminVorschlag = df.format(alternate).toString();
   System.out.println(df.format(alternate));
    }

   public void propertyChange(PropertyChangeEvent e){
           String prop = e.getPropertyName();
           if(jDialog.isVisible() && (e.getSource() == jOptionPane1) && (prop.equals(JOptionPane.VALUE_PROPERTY))){
            int value = ((Integer)jOptionPane1.getValue()).intValue();
            if(value == JOptionPane.YES_OPTION){
                System.out.println("YES YES");
                jDialog.setVisible(false);
                // hier werden alle Angaben in der TextArea angezeigt
                String auftragId = "1";    // das hier muss aus der DB genommen werden
                pp.setTextArea1("Auftragsnummer: " + auftragId);
                pp.setTextArea1("Konfiguration: " + konfiguration);
                String strMenge = Integer.toString(menge);
                pp.setTextArea1("Anzahl: " + strMenge);
                pp.setTextArea1("Termin: " + terminVorschlag);
                pp.setDatum(alternate);
                pp.setMenge(menge);
                pp.setKonfiguration(konfiguration);
                pp.setVisibleAuftrag(true);
                pp.setVisibleTermin(false);
                
            }else if(value == JOptionPane.NO_OPTION){
                System.out.println("NO NO");
            }
           }
       }

   }